package com.dragoncombin.homework.Module04.Problem02;

import java.io.File;

public class DeleteDirectory {

    // 打印指定目录下的所有文件
    public static void show(File file) {
        File[] files = file.listFiles();
        for (int i = 0; i < files.length; i++) {
            File f = files[i];
            System.out.print("--");
            if (f.isFile()) {
                System.out.println(f.getName());
            } else {
                System.out.println("[" + f.getName() + "]");
                show(f);
            }
        }
    }


    // 删除指定目录中的所有内容
    public static void deleteAll(File file) {

        if (file.exists()) {
            File[] files = file.listFiles();
            for (File f : files) {
                // 删除文件和内层空目录
                if (f.isFile()) {
                    boolean b1 = f.delete();
                    System.out.println(f.getName() + (b1 ? "删除成功" : "删除失败"));
                } else if (0 == f.listFiles().length) {
                    boolean b2 = f.delete();
                    System.out.println(f.getName() + "目录" + (b2 ? "删除成功" : "删除失败"));
                }
                else {
                    deleteAll(f);
                }

                // 删除空目录
                if (f.isDirectory()) {
                   boolean b3 = f.delete();
                    System.out.println(f.getName() + "目录" + (b3 ? "删除成功" : "删除失败"));
                }
            }
        }
    }



    public static void main(String[] args) {

        //  实现将指定目录中的所有内容删除，包含子目录中的内容都要全部删除。
        File file = new File("f:/aa");
        System.out.println("目录结构如下：");
        show(file);
        System.out.println("----------------------------------");
        deleteAll(file);
    }
}
